kubectl安装

kubectl 下载

  • 地址

https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG-1.8.md#client-binaries

安装

  • 安装
tar -xzvf kubernetes-client-linux-amd64.tar.gz
cp kubernetes/client/bin/kube* /usr/bin/
chmod a+x /usr/bin/kube*

生成kubectl kubeconfig文件

KUBE_APISERVER环境变量可以提前写/etc/profile文件中,KUBE_APISERVER变量值是master的apiserver地址,x.x.x.x是master内网

export KUBE_APISERVER="https://x.x.x.x:6443"
# 设置集群参数
kubectl config set-cluster kubernetes \
  --certificate-authority=/etc/kubernetes/ssl/ca.pem \
  --embed-certs=true \
  --server=${KUBE_APISERVER}
# 设置客户端认证参数
kubectl config set-credentials admin \
  --client-certificate=/etc/kubernetes/ssl/admin.pem \
  --embed-certs=true \
  --client-key=/etc/kubernetes/ssl/admin-key.pem
# 设置上下文参数
kubectl config set-context kubernetes \
  --cluster=kubernetes \
  --user=admin
# 设置默认上下文
kubectl config use-context kubernetes

参数说明

  • admin.pem 证书 OU 字段值为 system:masters,kube-apiserver 预定义的 RoleBinding cluster-admin 将 Group system:masters 与 Role cluster-admin 绑定,该 Role 授予了调用kube-apiserver 相关 API 的权限;

  • 生成的 kubeconfig 被保存到 ~/.kube/config 文件;

  • 注意:~/.kube/config文件拥有对该集群的最高权限,请妥善保管。

上传config

master生成kubetctl kubeconfig文件,上传到各node的~/.kube/目录下即可

问题

在node上使用kubectl get pod 时会抛*The connection to the server localhost:8080 was refused - did you specify the right host or port?* 问题

需要将master上的.kube目录下面文件拷贝到各node就可以正常使用kubectl 啦

kubectl version
Client Version: version.Info{Major:"1", Minor:"6", GitVersion:"v1.6.1", GitCommit:"b0b7a323cc5a4a2019b2e9520c21c7830b7f708e", GitTreeState:"clean", BuildDate:"2017-04-03T20:44:38Z", GoVersion:"go1.7.5", Compiler:"gc", Platform:"linux/arm64"}
The connection to the server localhost:8080 was refused - did you specify the right host or port?

results matching ""

    No results matching ""